home *** CD-ROM | disk | FTP | other *** search
- Lattice ATARI 680x0 Object Module Disassembler V5.52
- Copyright ╜ 1992 Lattice, Inc. All Rights Reserved.
-
-
- Lattice Object File Loader V1.00
- 68000 Instruction Set
-
- EXTERNAL DEFINITIONS
-
- _kernal 0000-00 _setup_k_function_table 027c-00 _op_code_names 0014-01
- _Ktable 0000-02 _Kcall_direct 04b0-02 _clients 0708-02
-
- SECTION 00 "" 00000594 BYTES
- ; 1: /*
- ; 2: * XaAES - XaAES Ain't the AES
- ; 3: *
- ; 4: * A multitasking AES replacement for MiNT
- ; 5: *
- ; 6: */
- ; 7:
- ; 8: #include <OSBIND.H>
- ; 9: #include <FILESYS.H>
- ; 10: #include <MINTBIND.H>
- ; 11:
- ; 12: #ifdef __PUREC__
- ; 13: #include <sys\types.h>
- ; 14: #else
- ; 15: #include <sys/types.h>
- ; 16: #endif
- ; 17:
- ; 18: #include <memory.h>
- ; 19: #include "K_DEFS.H"
- ; 20: #include "KERNAL.H"
- ; 21: #include "XA_GLOBL.H"
- ; 22: #include "XA_CODES.H"
- ; 23: #include "XA_DEFS.H"
- ; 24: #include "APP_MAN.H"
- ; 25: #include "APPL_INI.H"
- ; 26: #include "APPL_WRT.H"
- ; 27: #include "APPLSEAR.H"
- ; 28: #include "NEW_CLNT.H"
- ; 29: #include "GETINFO.H"
- ; 30: #include "EVNT_BTN.H"
- ; 31: #include "EVNT_KBD.H"
- ; 32: #include "EVNT_MES.H"
- ; 33: #include "EVNT_MUL.H"
- ; 34: #include "EVNT_TMR.H"
- ; 35: #include "MOUSE_CL.H"
- ; 36: #include "WIND_FNS.H"
- ; 37: #include "GRAF_MOU.H"
- ; 38: #include "GRAF_BOX.H"
- ; 39: #include "GRAFGROW.H"
- ; 40: #include "KEYBOARD.H"
- ; 41: #include "RESOURCE.H"
- ; 42: #include "OBJC_DRW.H"
- ; 43: #include "OBJCEDIT.H"
- ; 44: #include "FORMS.H"
- ; 45: #include "FRM_ALRT.H"
- ; 46: #include "MENUBAR.H"
- ; 47: #include "SHELL.H"
- ; 48: #include "EXTEND.H"
- ; 49: #include "SCRAP.H"
- ; 50: #include "op_names.h"
- ; 51:
- ; 52: far AESroutine Ktable[300]; /* The main AES kernal command jump table */
- ; 53: far short Kcall_direct[300]; /* array of flags to indicate that routines should be direct called */
- ; 54: far XA_CLIENT clients[MAX_PID+1]; /* The clients database */
- ; 55:
- ; 56: /*
- ; 57: Kernal Message Handler
- ; 58:
- ; 59: This is responsible for accepting requests via the XaAES.cmd pipe and
- ; 60: sending (most) replies via the client's reply pipe.
- ; 61:
- ; 62: We also get keyboard & mouse input data here.
- ; 63: */
- ; 64:
- ; 65: void kernal(void)
- ; 66: {
- | 0000 4e56 ffe0 link a6,#$ffe0
- | 0004 48e7 3724 movem.l d2-d3/d5-d7/a2/a5,-(a7)
- ; 67: unsigned short cmd;
- ; 68: short rtn=XA_OK;
- | 0008 7000 moveq #$00,d0
- | 000a 3d40 fffc move.w d0,$fffc(a6)
- ; 69: AESPB *parms;
- ; 70: MOUSE_DATA mdata;
- ; 71: AESroutine cmd_routine;
- ; 72: short clnt_pid;
- ; 73: short repl=FALSE;
- | 000e 2e00 move.l d0,d7
- ; 74: unsigned long input_channels;
- ; 75: short fs_rtn,r;
- ; 76:
- ; 77: /* Unlock the semaphores....we're ready to go */
- ; 78: Psemaphore(3,APPL_INIT_SEMAPHORE,0);
- | 0010 42a7 clr.l -(a7)
- | 0012 2f3c 5841 3a49 move.l #$58413a49,-(a7)
- | 0018 7003 moveq #$03,d0
- | 001a 3f00 move.w d0,-(a7)
- | 001c 303c 0134 move.w #$0134,d0
- | 0020 3f00 move.w d0,-(a7)
- | 0022 4e41 trap #$01
- | 0024 4fef 000c lea $000c(a7),a7
- ; 79: Psemaphore(3,TRAP_HANDLER_SEMAPHORE,0);
- | 0028 42a7 clr.l -(a7)
- | 002a 2f3c 5841 3a48 move.l #$58413a48,-(a7)
- | 0030 7003 moveq #$03,d0
- | 0032 3f00 move.w d0,-(a7)
- | 0034 303c 0134 move.w #$0134,d0
- | 0038 3f00 move.w d0,-(a7)
- | 003a 4e41 trap #$01
- | 003c 4fef 000c lea $000c(a7),a7
- ; 80: Psemaphore(3,WIN_LIST_SEMAPHORE,0);
- | 0040 42a7 clr.l -(a7)
- | 0042 2f3c 5841 3a57 move.l #$58413a57,-(a7)
- | 0048 7003 moveq #$03,d0
- | 004a 3f00 move.w d0,-(a7)
- | 004c 303c 0134 move.w #$0134,d0
- | 0050 3f00 move.w d0,-(a7)
- | 0052 4e41 trap #$01
- | 0054 4fef 000c lea $000c(a7),a7
- ; 81: Psemaphore(3,ROOT_SEMAPHORE,0);
- | 0058 42a7 clr.l -(a7)
- | 005a 2f3c 5841 3a52 move.l #$58413a52,-(a7)
- | 0060 7003 moveq #$03,d0
- | 0062 3f00 move.w d0,-(a7)
- | 0064 303c 0134 move.w #$0134,d0
- | 0068 3f00 move.w d0,-(a7)
- | 006a 4e41 trap #$01
- | 006c 4fef 000c lea $000c(a7),a7
- ; 82: Psemaphore(3,CLIENTS_SEMAPHORE,0);
- | 0070 42a7 clr.l -(a7)
- | 0072 2f3c 5841 3a43 move.l #$58413a43,-(a7)
- | 0078 7003 moveq #$03,d0
- | 007a 3f00 move.w d0,-(a7)
- | 007c 303c 0134 move.w #$0134,d0
- | 0080 3f00 move.w d0,-(a7)
- | 0082 4e41 trap #$01
- | 0084 4fef 000c lea $000c(a7),a7
- ; 83: Psemaphore(3,UPDATE_LOCK,0);
- | 0088 42a7 clr.l -(a7)
- | 008a 2f3c 5841 3a55 move.l #$58413a55,-(a7)
- | 0090 7003 moveq #$03,d0
- | 0092 3f00 move.w d0,-(a7)
- | 0094 303c 0134 move.w #$0134,d0
- | 0098 3f00 move.w d0,-(a7)
- | 009a 4e41 trap #$01
- | 009c 4fef 000c lea $000c(a7),a7
- ; 84: Psemaphore(3,MOUSE_LOCK,0);
- | 00a0 42a7 clr.l -(a7)
- | 00a2 2f3c 5841 3a4d move.l #$58413a4d,-(a7)
- | 00a8 7003 moveq #$03,d0
- | 00aa 3f00 move.w d0,-(a7)
- | 00ac 303c 0134 move.w #$0134,d0
- | 00b0 3f00 move.w d0,-(a7)
- | 00b2 4e41 trap #$01
- | 00b4 4fef 000c lea $000c(a7),a7
- ; 85:
- ; 86: /* Main kernal loop - this never exits */
- ; 87: do {
- ; 88: input_channels=1L<<KBD_device; /* We are waiting on all these channels */
- | 00b8 7001 moveq #$01,d0
- | 00ba 2200 move.l d0,d1
- | 00bc 242c 0000-XX.2 move.l _KBD_device(a4),d2
- | 00c0 e5a1 asl.l d2,d1
- | 00c2 2d41 ffe4 move.l d1,$ffe4(a6)
- ; 89: input_channels|=1L<<AES_in_pipe;
- | 00c6 2400 move.l d0,d2
- | 00c8 262c 0000-XX.2 move.l _AES_in_pipe(a4),d3
- | 00cc e7a2 asl.l d3,d2
- | 00ce 85ae ffe4 or.l d2,$ffe4(a6)
- ; 90: input_channels|=1L<<MOUSE_in_pipe;
- | 00d2 222c 0000-XX.2 move.l _MOUSE_in_pipe(a4),d1
- | 00d6 e3a0 asl.l d1,d0
- | 00d8 81ae ffe4 or.l d0,$ffe4(a6)
- ; 91:
- ; 92: fs_rtn=Fselect(2000,(long *)&input_channels,NULL,NULL); /* Block via select() on the console & the */
- | 00dc 7000 moveq #$00,d0
- | 00de 2f00 move.l d0,-(a7)
- | 00e0 2f00 move.l d0,-(a7)
- | 00e2 486e ffe4 pea $ffe4(a6)
- | 00e6 323c 07d0 move.w #$07d0,d1
- | 00ea 3f01 move.w d1,-(a7)
- | 00ec 323c 011d move.w #$011d,d1
- | 00f0 3f01 move.w d1,-(a7)
- | 00f2 4e41 trap #$01
- | 00f4 4fef 0010 lea $0010(a7),a7
- | 00f8 2c00 move.l d0,d6
- ; 93: /* AES command pipe. */
- ; 94:
- ; 95: if (!fs_rtn) /* Timeout - do some housekeeping */
- | 00fa 4a46 tst.w d6
- | 00fc 6608 bne.b $0106
- ; 96: {
- ; 97:
- ; 98: find_dead_clients();
- | 00fe 4eba 0000-XX.1 jsr _find_dead_clients(pc)
- ; 99:
- ; 100: }else{
- | 0102 6000 0162 bra.w $0266
- ; 101:
- ; 102: if (input_channels&(1L<<KBD_device)) /* Did we get some keyboard input? */
- | 0106 7001 moveq #$01,d0
- | 0108 222c 0000-XX.2 move.l _KBD_device(a4),d1
- | 010c e3a0 asl.l d1,d0
- | 010e 222e ffe4 move.l $ffe4(a6),d1
- | 0112 c280 and.l d0,d1
- | 0114 6704 beq.b $011a
- ; 103: {
- ; 104: do_keyboard();
- | 0116 4eba 0000-XX.1 jsr _do_keyboard(pc)
- ; 105: }
- ; 106:
- ; 107: if (input_channels&(1L<<MOUSE_in_pipe)) /* Did we get a mouse message? */
- | 011a 7001 moveq #$01,d0
- | 011c 222c 0000-XX.2 move.l _MOUSE_in_pipe(a4),d1
- | 0120 e3a0 asl.l d1,d0
- | 0122 242e ffe4 move.l $ffe4(a6),d2
- | 0126 c480 and.l d0,d2
- | 0128 671e beq.b $0148
- ; 108: {
- ; 109: Fread(MOUSE_in_pipe, (long)sizeof(MOUSE_DATA), &mdata); /* get Mouse data packet */
- | 012a 486e fff0 pea $fff0(a6)
- | 012e 4878 0008 pea $0008
- | 0132 3f01 move.w d1,-(a7)
- | 0134 703f moveq #$3f,d0
- | 0136 3f00 move.w d0,-(a7)
- | 0138 4e41 trap #$01
- | 013a 4fef 000c lea $000c(a7),a7
- ; 110: XA_button_event(&mdata); /* Call the mouse event handler */
- | 013e 486e fff0 pea $fff0(a6)
- | 0142 4eba 0000-XX.1 jsr _XA_button_event(pc)
- | 0146 584f addq.w #4,a7
- ; 111: }
- ; 112:
- ; 113: if (input_channels&(1L<<AES_in_pipe)) /* Did we get a command message? */
- | 0148 7001 moveq #$01,d0
- | 014a 222c 0000-XX.2 move.l _AES_in_pipe(a4),d1
- | 014e e3a0 asl.l d1,d0
- | 0150 242e ffe4 move.l $ffe4(a6),d2
- | 0154 c480 and.l d0,d2
- | 0156 6700 010e beq.w $0266
- ; 114: {
- ; 115: r=Fread(AES_in_pipe, (long)sizeof(short), &clnt_pid); /* pid of the client sending the command */
- | 015a 486e ffea pea $ffea(a6)
- | 015e 4878 0002 pea $0002
- | 0162 3f01 move.w d1,-(a7)
- | 0164 703f moveq #$3f,d0
- | 0166 3f00 move.w d0,-(a7)
- | 0168 4e41 trap #$01
- | 016a 4fef 000c lea $000c(a7),a7
- | 016e 2a00 move.l d0,d5
- ; 116:
- ; 117: /* Quick check here to get round a bug in MiNT's Fselect when used with pipes (sometimes a pipe may be reported
- ; 118: as having data ready for reading, when in-fact it hasn't). */
- ; 119: if (r==sizeof(short))
- | 0170 2005 move.l d5,d0
- | 0172 48c0 ext.l d0
- | 0174 5580 subq.l #2,d0
- | 0176 6600 00ee bne.w $0266
- ; 120: {
- ; 121: Fread(AES_in_pipe, (long)sizeof(unsigned short), &cmd); /* command type */
- | 017a 202c 0000-XX.2 move.l _AES_in_pipe(a4),d0
- | 017e 486e fffe pea $fffe(a6)
- | 0182 4878 0002 pea $0002
- | 0186 3f00 move.w d0,-(a7)
- | 0188 723f moveq #$3f,d1
- | 018a 3f01 move.w d1,-(a7)
- | 018c 4e41 trap #$01
- | 018e 4fef 000c lea $000c(a7),a7
- ; 122:
- ; 123: Fread(AES_in_pipe, (long)sizeof(AESPB*), &parms); /* get a pointer to AES parameter block */
- | 0192 202c 0000-XX.2 move.l _AES_in_pipe(a4),d0
- | 0196 486e fff8 pea $fff8(a6)
- | 019a 4878 0004 pea $0004
- | 019e 3f00 move.w d0,-(a7)
- | 01a0 723f moveq #$3f,d1
- | 01a2 3f01 move.w d1,-(a7)
- | 01a4 4e41 trap #$01
- | 01a6 4fef 000c lea $000c(a7),a7
- ; 124:
- ; 125: #if GENERATE_DIAGS
- ; 126: if (parms->contrl[0]<=MAX_NAMED_DIAG)
- ; 127: {
- ; 128: if (parms->contrl[0]!=XA_EVNT_MULTI)
- ; 129: DIAGS(("cmd_pipe: pid=%d, %s [=%d]\n",clnt_pid, op_code_names[parms->contrl[0]],parms->contrl[0]));
- ; 130: }else
- ; 131: DIAGS(("cmd_pipe: pid=%d, op-code=%d\n",clnt_pid, parms->contrl[0]));
- ; 132: #endif
- ; 133:
- ; 134: /* Call AES routine via jump table*/
- ; 135: if ((parms->contrl[0]>=0)&&(parms->contrl[0]<300))
- | 01aa 226e fff8 movea.l $fff8(a6),a1
- | 01ae 2051 movea.l (a1),a0
- | 01b0 3010 move.w (a0),d0
- | 01b2 4a40 tst.w d0
- | 01b4 6b3c bmi.b $01f2
- | 01b6 0c40 012c cmpi.w #$012c,d0
- | 01ba 6c36 bge.b $01f2
- ; 136: {
- ; 137: cmd_routine=Ktable[parms->contrl[0]];
- | 01bc 3010 move.w (a0),d0
- | 01be 48c0 ext.l d0
- | 01c0 e580 asl.l #2,d0
- | 01c2 41f9 0000 0000-02 lea 02.00000000,a0
- | 01c8 d1c0 adda.l d0,a0
- | 01ca 2a50 movea.l (a0),a5
- ; 138: if (cmd_routine!=NULL) /* Do we support this op-code yet? */
- | 01cc 204d movea.l a5,a0
- | 01ce 2008 move.l a0,d0
- | 01d0 6718 beq.b $01ea
- ; 139: {
- ; 140: repl=(*cmd_routine)(clnt_pid,parms);
- | 01d2 302e ffea move.w $ffea(a6),d0
- | 01d6 48c0 ext.l d0
- | 01d8 2f09 move.l a1,-(a7)
- | 01da 2f00 move.l d0,-(a7)
- | 01dc 4e95 jsr (a5)
- | 01de 504f addq.w #8,a7
- | 01e0 2e00 move.l d0,d7
- ; 141: rtn=XA_OK;
- | 01e2 7000 moveq #$00,d0
- | 01e4 3d40 fffc move.w d0,$fffc(a6)
- ; 142: }else{
- | 01e8 600e bra.b $01f8
- ; 143: DIAGS(("cmd_pipe: pid:%d, Opcode not implemented\n",clnt_pid));
- ; 144: DIAGS((" op-code=%d\n",parms->contrl[0]));
- ; 145: rtn=XA_UNIMPLEMENTED; /* Unimplemented functions :( */
- | 01ea 3d7c 0001 fffc move.w #$0001,$fffc(a6)
- ; 146: }
- ; 147: }else{
- | 01f0 6006 bra.b $01f8
- ; 148: DIAGS(("XaAES: illegal AES opcode=%d\n",parms->contrl[0]));
- ; 149: rtn=XA_ILLEGAL; /* Illegal op-code - these may be caused by bugs in the client program */
- | 01f2 3d7c 0002 fffc move.w #$0002,$fffc(a6)
- ; 150: }
- ; 151:
- ; 152: /* If client wants a reply, send it one - standard GEM programs will always do this,
- ; 153: but XaAES aware programs don't always need to (depends if they are going to use the reply I suppose)
- ; 154: Some op-codes (evnt_multi for instance) will want to leave the client blocked until an event occurs.
- ; 155: I've added some extra blocking modes to support better timeouts..... */
- ; 156: if ((cmd!=AESCMD_NOREPLY)&&(repl!=XAC_BLOCK))
- | 01f8 302e fffe move.w $fffe(a6),d0
- | 01fc 0c40 00ca cmpi.w #$00ca,d0
- | 0200 6764 beq.b $0266
- | 0202 4a47 tst.w d7
- | 0204 6760 beq.b $0266
- ; 157: {
- ; 158: r=repl&0xf;
- | 0206 2a07 move.l d7,d5
- | 0208 0245 000f andi.w #$000f,d5
- ; 159: switch(r)
- | 020c 2005 move.l d5,d0
- | 020e 5540 subq.w #2,d0
- | 0210 6706 beq.b $0218
- | 0212 5340 subq.w #1,d0
- | 0214 6716 beq.b $022c
- | 0216 6026 bra.b $023e
- ; 160: {
- ; 161: case XAC_T_TIMEOUT:
- ; 162: rtn=XA_T_WAIT|(repl&0xfff0);
- | 0218 2007 move.l d7,d0
- | 021a 48c0 ext.l d0
- | 021c 0280 0000 fff0 andi.l #$0000fff0,d0
- | 0222 0040 0003 ori.w #$0003,d0
- | 0226 3d40 fffc move.w d0,$fffc(a6)
- ; 163: break;
- | 022a 6012 bra.b $023e
- ; 164: case XAC_M_TIMEOUT:
- ; 165: rtn=XA_M_WAIT|(repl&0xfff0);
- | 022c 2007 move.l d7,d0
- | 022e 48c0 ext.l d0
- | 0230 0280 0000 fff0 andi.l #$0000fff0,d0
- | 0236 0040 0004 ori.w #$0004,d0
- | 023a 3d40 fffc move.w d0,$fffc(a6)
- ; 166: break;
- ; 167: default:
- ; 168: break;
- ; 169: }
- ; 170: Fwrite(clients[clnt_pid].clnt_pipe_wr,sizeof(short),&rtn);
- | 023e 302e ffea move.w $ffea(a6),d0
- | 0242 c1fc 00f6 muls.w #$00f6,d0
- | 0246 41f9 0000 0708-02 lea 02.00000708,a0
- | 024c d1c0 adda.l d0,a0
- | 024e 2028 0004 move.l $0004(a0),d0
- | 0252 486e fffc pea $fffc(a6)
- | 0256 4878 0002 pea $0002
- | 025a 3f00 move.w d0,-(a7)
- | 025c 7240 moveq #$40,d1
- | 025e 3f01 move.w d1,-(a7)
- | 0260 4e41 trap #$01
- | 0262 4fef 000c lea $000c(a7),a7
- ; 171: }
- ; 172: }
- ; 173: }
- ; 174: }
- ; 175:
- ; 176: }while(parms->contrl[0]!=XA_SHUTDOWN);
- | 0266 226e fff8 movea.l $fff8(a6),a1
- | 026a 2051 movea.l (a1),a0
- | 026c 0c50 00fd cmpi.w #$00fd,(a0)
- | 0270 6600 fe46 bne.w $00b8
- ; 177: }
- | 0274 4cdf 24ec movem.l (a7)+,d2-d3/d5-d7/a2/a5
- | 0278 4e5e unlk a6
- | 027a 4e75 rts
- ; 178:
- ; 179: /*
- ; 180: Setup the AES kernal jump table
- ; 181: */
- ; 182:
- ; 183: void setup_k_function_table(void)
- ; 184: {
- | 027c 2f07 move.l d7,-(a7)
- ; 185: short f;
- ; 186: for(f=0; f<300; f++)
- | 027e 7e00 moveq #$00,d7
- | 0280 0c47 012c cmpi.w #$012c,d7
- | 0284 6c24 bge.b $02aa
- ; 187: {
- ; 188: Ktable[f]=NULL;
- | 0286 2007 move.l d7,d0
- | 0288 48c0 ext.l d0
- | 028a e580 asl.l #2,d0
- | 028c 41f9 0000 0000-02 lea 02.00000000,a0
- | 0292 d1c0 adda.l d0,a0
- | 0294 4290 clr.l (a0)
- ; 189: Kcall_direct[f]=FALSE;
- | 0296 2007 move.l d7,d0
- | 0298 48c0 ext.l d0
- | 029a d080 add.l d0,d0
- | 029c 41f9 0000 04b0-02 lea 02.000004b0,a0
- | 02a2 d1c0 adda.l d0,a0
- | 02a4 4250 clr.w (a0)
- | 02a6 5247 addq.w #1,d7
- | 02a8 60d6 bra.b $0280
- ; 190: }
- ; 191:
- ; 192: /* appl_ class functions */
- ; 193: Ktable[XA_APPL_INIT]=NULL;
- | 02aa 91c8 suba.l a0,a0
- | 02ac 23c8 0000 0028-02 move.l a0,02.00000028
- ; 194: Ktable[XA_APPL_EXIT]=NULL;
- | 02b2 23c8 0000 004c-02 move.l a0,02.0000004c
- ; 195: Ktable[XA_APPL_GETINFO]=&XA_appl_getinfo;
- | 02b8 41fa 0000-XX.1 lea _XA_appl_getinfo(pc),a0
- | 02bc 23c8 0000 0208-02 move.l a0,02.00000208
- ; 196: Ktable[XA_APPL_FIND]=&XA_appl_find;
- | 02c2 41fa 0000-XX.1 lea _XA_appl_find(pc),a0
- | 02c6 23c8 0000 0034-02 move.l a0,02.00000034
- ; 197: Ktable[XA_APPL_WRITE]=&XA_appl_write;
- | 02cc 41fa 0000-XX.1 lea _XA_appl_write(pc),a0
- | 02d0 23c8 0000 0030-02 move.l a0,02.00000030
- ; 198: Ktable[XA_APPL_SEARCH]=&XA_appl_search;
- | 02d6 41fa 0000-XX.1 lea _XA_appl_search(pc),a0
- | 02da 23c8 0000 0048-02 move.l a0,02.00000048
- ; 199:
- ; 200: /* Form handlers (form_ xxxx) */
- ; 201: Ktable[XA_FORM_ALERT]=&XA_form_alert;
- | 02e0 41fa 0000-XX.1 lea _XA_form_alert(pc),a0
- | 02e4 23c8 0000 00d0-02 move.l a0,02.000000d0
- ; 202: Ktable[XA_FORM_ERROR]=&XA_form_error;
- | 02ea 41fa 0000-XX.1 lea _XA_form_error(pc),a0
- | 02ee 23c8 0000 00d4-02 move.l a0,02.000000d4
- ; 203: Ktable[XA_FORM_CENTER]=&XA_form_center;
- | 02f4 41fa 0000-XX.1 lea _XA_form_center(pc),a0
- | 02f8 23c8 0000 00d8-02 move.l a0,02.000000d8
- ; 204: Ktable[XA_FORM_DIAL]=&XA_form_dial;
- | 02fe 41fa 0000-XX.1 lea _XA_form_dial(pc),a0
- | 0302 23c8 0000 00cc-02 move.l a0,02.000000cc
- ; 205: Ktable[XA_FORM_BUTTON]=&XA_form_button;
- | 0308 41fa 0000-XX.1 lea _XA_form_button(pc),a0
- | 030c 23c8 0000 00e0-02 move.l a0,02.000000e0
- ; 206: Ktable[XA_FORM_DO]=&XA_form_do;
- | 0312 41fa 0000-XX.1 lea _XA_form_do(pc),a0
- | 0316 23c8 0000 00c8-02 move.l a0,02.000000c8
- ; 207: Ktable[XA_FORM_KEYBD]=&XA_form_keybd;
- | 031c 41fa 0000-XX.1 lea _XA_form_keybd(pc),a0
- | 0320 23c8 0000 00dc-02 move.l a0,02.000000dc
- ; 208:
- ; 209: /* Event handlers (evnt_ xxx) */
- ; 210: Ktable[XA_EVNT_BUTTON]=&XA_evnt_button;
- | 0326 41fa 0000-XX.1 lea _XA_evnt_button(pc),a0
- | 032a 23c8 0000 0054-02 move.l a0,02.00000054
- ; 211: Ktable[XA_EVNT_KEYBD]=&XA_evnt_keybd;
- | 0330 41fa 0000-XX.1 lea _XA_evnt_keybd(pc),a0
- | 0334 23c8 0000 0050-02 move.l a0,02.00000050
- ; 212: Ktable[XA_EVNT_MESAG]=&XA_evnt_mesag;
- | 033a 41fa 0000-XX.1 lea _XA_evnt_mesag(pc),a0
- | 033e 23c8 0000 005c-02 move.l a0,02.0000005c
- ; 213: Ktable[XA_EVNT_MULTI]=&XA_evnt_multi;
- | 0344 41fa 0000-XX.1 lea _XA_evnt_multi(pc),a0
- | 0348 23c8 0000 0064-02 move.l a0,02.00000064
- ; 214: Ktable[XA_EVNT_TIMER]=&XA_evnt_timer;
- | 034e 41fa 0000-XX.1 lea _XA_evnt_timer(pc),a0
- | 0352 23c8 0000 0060-02 move.l a0,02.00000060
- ; 215: CALL_DIRECT(XA_EVNT_BUTTON);
- | 0358 7001 moveq #$01,d0
- | 035a 33c0 0000 04da-02 move.w d0,02.000004da
- ; 216: CALL_DIRECT(XA_EVNT_KEYBD);
- | 0360 33c0 0000 04d8-02 move.w d0,02.000004d8
- ; 217: CALL_DIRECT(XA_EVNT_TIMER);
- | 0366 33c0 0000 04e0-02 move.w d0,02.000004e0
- ; 218:
- ; 219: /* graf_ class functions */
- ; 220: Ktable[XA_GRAF_RUBBERBOX]=&XA_graf_rubberbox;
- | 036c 41fa 0000-XX.1 lea _XA_graf_rubberbox(pc),a0
- | 0370 23c8 0000 0118-02 move.l a0,02.00000118
- ; 221: Ktable[XA_GRAF_DRAGBOX]=&XA_graf_dragbox;
- | 0376 41fa 0000-XX.1 lea _XA_graf_dragbox(pc),a0
- | 037a 23c8 0000 011c-02 move.l a0,02.0000011c
- ; 222: Ktable[XA_GRAF_HANDLE]=&XA_graf_handle;
- | 0380 41fa 0000-XX.1 lea _XA_graf_handle(pc),a0
- | 0384 23c8 0000 0134-02 move.l a0,02.00000134
- ; 223: Ktable[XA_GRAF_MOUSE]=&XA_graf_mouse;
- | 038a 41fa 0000-XX.1 lea _XA_graf_mouse(pc),a0
- | 038e 23c8 0000 0138-02 move.l a0,02.00000138
- ; 224: Ktable[XA_GRAF_MKSTATE]=&XA_graf_mkstate;
- | 0394 41fa 0000-XX.1 lea _XA_graf_mkstate(pc),a0
- | 0398 23c8 0000 013c-02 move.l a0,02.0000013c
- ; 225: Ktable[XA_GRAF_GROWBOX]=&XA_graf_growbox;
- | 039e 41fa 0000-XX.1 lea _XA_graf_growbox(pc),a0
- | 03a2 23c8 0000 0124-02 move.l a0,02.00000124
- ; 226: Ktable[XA_GRAF_SHRINKBOX]=&XA_graf_growbox;
- | 03a8 23c8 0000 0128-02 move.l a0,02.00000128
- ; 227: Ktable[XA_GRAF_MOVEBOX]=&XA_graf_movebox;
- | 03ae 41fa 0000-XX.1 lea _XA_graf_movebox(pc),a0
- | 03b2 23c8 0000 0120-02 move.l a0,02.00000120
- ; 228: Ktable[XA_GRAF_WATCHBOX]=&XA_graf_watchbox;
- | 03b8 41fa 0000-XX.1 lea _XA_graf_watchbox(pc),a0
- | 03bc 23c8 0000 012c-02 move.l a0,02.0000012c
- ; 229: CALL_DIRECT(XA_GRAF_HANDLE);
- | 03c2 33c0 0000 054a-02 move.w d0,02.0000054a
- ; 230: CALL_DIRECT(XA_GRAF_MOUSE);
- | 03c8 33c0 0000 054c-02 move.w d0,02.0000054c
- ; 231: CALL_DIRECT(XA_GRAF_MKSTATE);
- | 03ce 33c0 0000 054e-02 move.w d0,02.0000054e
- ; 232: CALL_DIRECT(XA_GRAF_MOVEBOX);
- | 03d4 33c0 0000 0540-02 move.w d0,02.00000540
- ; 233: CALL_DIRECT(XA_GRAF_GROWBOX);
- | 03da 33c0 0000 0542-02 move.w d0,02.00000542
- ; 234: CALL_DIRECT(XA_GRAF_SHRINKBOX);
- | 03e0 33c0 0000 0544-02 move.w d0,02.00000544
- ; 235:
- ; 236: /* Window Handling (wind_ xxxx) */
- ; 237: Ktable[XA_WIND_CREATE]=&XA_wind_create;
- | 03e6 41fa 0000-XX.1 lea _XA_wind_create(pc),a0
- | 03ea 23c8 0000 0190-02 move.l a0,02.00000190
- ; 238: Ktable[XA_WIND_OPEN]=&XA_wind_open;
- | 03f0 41fa 0000-XX.1 lea _XA_wind_open(pc),a0
- | 03f4 23c8 0000 0194-02 move.l a0,02.00000194
- ; 239: Ktable[XA_WIND_CLOSE]=&XA_wind_close;
- | 03fa 41fa 0000-XX.1 lea _XA_wind_close(pc),a0
- | 03fe 23c8 0000 0198-02 move.l a0,02.00000198
- ; 240: Ktable[XA_WIND_SET]=&XA_wind_set;
- | 0404 41fa 0000-XX.1 lea _XA_wind_set(pc),a0
- | 0408 23c8 0000 01a4-02 move.l a0,02.000001a4
- ; 241: Ktable[XA_WIND_GET]=&XA_wind_get;
- | 040e 41fa 0000-XX.1 lea _XA_wind_get(pc),a0
- | 0412 23c8 0000 01a0-02 move.l a0,02.000001a0
- ; 242: Ktable[XA_WIND_FIND]=&XA_wind_find;
- | 0418 41fa 0000-XX.1 lea _XA_wind_find(pc),a0
- | 041c 23c8 0000 01a8-02 move.l a0,02.000001a8
- ; 243: Ktable[XA_WIND_UPDATE]=&XA_wind_update;
- | 0422 41fa 0000-XX.1 lea _XA_wind_update(pc),a0
- | 0426 23c8 0000 01ac-02 move.l a0,02.000001ac
- ; 244: Ktable[XA_WIND_DELETE]=&XA_wind_delete;
- | 042c 41fa 0000-XX.1 lea _XA_wind_delete(pc),a0
- | 0430 23c8 0000 019c-02 move.l a0,02.0000019c
- ; 245: Ktable[XA_WIND_NEW]=&XA_wind_new;
- | 0436 41fa 0000-XX.1 lea _XA_wind_new(pc),a0
- | 043a 23c8 0000 01b4-02 move.l a0,02.000001b4
- ; 246: Ktable[XA_WIND_CALC]=&XA_wind_calc;
- | 0440 41fa 0000-XX.1 lea _XA_wind_calc(pc),a0
- | 0444 23c8 0000 01b0-02 move.l a0,02.000001b0
- ; 247: CALL_DIRECT(XA_WIND_FIND);
- | 044a 33c0 0000 0584-02 move.w d0,02.00000584
- ; 248: CALL_DIRECT(XA_WIND_GET);
- | 0450 33c0 0000 0580-02 move.w d0,02.00000580
- ; 249: Kcall_direct[XA_WIND_UPDATE]=TRUE; /* wind_update must ALWAYS be call direct
- | 0456 33c0 0000 0586-02 move.w d0,02.00000586
- ; 250: as it uses semaphore locking */
- ; 251:
- ; 252: /* Object Tree Handling (objc_ xxxx) */
- ; 253: Ktable[XA_OBJC_DRAW]=&XA_objc_draw;
- | 045c 41fa 0000-XX.1 lea _XA_objc_draw(pc),a0
- | 0460 23c8 0000 00a8-02 move.l a0,02.000000a8
- ; 254: Ktable[XA_OBJC_FIND]=&XA_objc_find;
- | 0466 41fa 0000-XX.1 lea _XA_objc_find(pc),a0
- | 046a 23c8 0000 00ac-02 move.l a0,02.000000ac
- ; 255: Ktable[XA_OBJC_OFFSET]=&XA_objc_offset;
- | 0470 41fa 0000-XX.1 lea _XA_objc_offset(pc),a0
- | 0474 23c8 0000 00b0-02 move.l a0,02.000000b0
- ; 256: Ktable[XA_OBJC_CHANGE]=&XA_objc_change;
- | 047a 41fa 0000-XX.1 lea _XA_objc_change(pc),a0
- | 047e 23c8 0000 00bc-02 move.l a0,02.000000bc
- ; 257: Ktable[XA_OBJC_EDIT]=&XA_objc_edit;
- | 0484 41fa 0000-XX.1 lea _XA_objc_edit(pc),a0
- | 0488 23c8 0000 00b8-02 move.l a0,02.000000b8
- ; 258: CALL_DIRECT(XA_OBJC_DRAW);
- | 048e 33c0 0000 0504-02 move.w d0,02.00000504
- ; 259: CALL_DIRECT(XA_OBJC_FIND);
- | 0494 33c0 0000 0506-02 move.w d0,02.00000506
- ; 260: CALL_DIRECT(XA_OBJC_OFFSET);
- | 049a 33c0 0000 0508-02 move.w d0,02.00000508
- ; 261: CALL_DIRECT(XA_OBJC_CHANGE);
- | 04a0 33c0 0000 050e-02 move.w d0,02.0000050e
- ; 262:
- ; 263: /* Resource Handling */
- ; 264: Ktable[XA_RSRC_LOAD]=&XA_rsrc_load;
- | 04a6 41fa 0000-XX.1 lea _XA_rsrc_load(pc),a0
- | 04aa 23c8 0000 01b8-02 move.l a0,02.000001b8
- ; 265: Ktable[XA_RSRC_FREE]=&XA_rsrc_free;
- | 04b0 41fa 0000-XX.1 lea _XA_rsrc_free(pc),a0
- | 04b4 23c8 0000 01bc-02 move.l a0,02.000001bc
- ; 266: Ktable[XA_RSRC_GADDR]=&XA_rsrc_gaddr;
- | 04ba 41fa 0000-XX.1 lea _XA_rsrc_gaddr(pc),a0
- | 04be 23c8 0000 01c0-02 move.l a0,02.000001c0
- ; 267: Ktable[XA_RSRC_OBFIX]=&XA_rsrc_obfix;
- | 04c4 41fa 0000-XX.1 lea _XA_rsrc_obfix(pc),a0
- | 04c8 23c8 0000 01c8-02 move.l a0,02.000001c8
- ; 268: CALL_DIRECT(XA_RSRC_LOAD);
- | 04ce 33c0 0000 058c-02 move.w d0,02.0000058c
- ; 269: CALL_DIRECT(XA_RSRC_FREE);
- | 04d4 33c0 0000 058e-02 move.w d0,02.0000058e
- ; 270: CALL_DIRECT(XA_RSRC_GADDR);
- | 04da 33c0 0000 0590-02 move.w d0,02.00000590
- ; 271: CALL_DIRECT(XA_RSRC_OBFIX);
- | 04e0 33c0 0000 0594-02 move.w d0,02.00000594
- ; 272:
- ; 273: /* Menu Bar Handling */
- ; 274: Ktable[XA_MENU_BAR]=&XA_menu_bar;
- | 04e6 41fa 0000-XX.1 lea _XA_menu_bar(pc),a0
- | 04ea 23c8 0000 0078-02 move.l a0,02.00000078
- ; 275: Ktable[XA_MENU_TNORMAL]=&XA_menu_tnormal;
- | 04f0 41fa 0000-XX.1 lea _XA_menu_tnormal(pc),a0
- | 04f4 23c8 0000 0084-02 move.l a0,02.00000084
- ; 276: Ktable[XA_MENU_ICHECK]=&XA_menu_icheck;
- | 04fa 41fa 0000-XX.1 lea _XA_menu_icheck(pc),a0
- | 04fe 23c8 0000 007c-02 move.l a0,02.0000007c
- ; 277: Ktable[XA_MENU_IENABLE]=&XA_menu_ienable;
- | 0504 41fa 0000-XX.1 lea _XA_menu_ienable(pc),a0
- | 0508 23c8 0000 0080-02 move.l a0,02.00000080
- ; 278: Ktable[XA_MENU_TEXT]=&XA_menu_text;
- | 050e 41fa 0000-XX.1 lea _XA_menu_text(pc),a0
- | 0512 23c8 0000 0088-02 move.l a0,02.00000088
- ; 279: Ktable[XA_MENU_REGISTER]=&XA_menu_register;
- | 0518 41fa 0000-XX.1 lea _XA_menu_register(pc),a0
- | 051c 23c8 0000 008c-02 move.l a0,02.0000008c
- ; 280: CALL_DIRECT(XA_MENU_TNORMAL);
- | 0522 33c0 0000 04f2-02 move.w d0,02.000004f2
- ; 281: CALL_DIRECT(XA_MENU_ICHECK);
- | 0528 33c0 0000 04ee-02 move.w d0,02.000004ee
- ; 282: CALL_DIRECT(XA_MENU_IENABLE);
- | 052e 33c0 0000 04f0-02 move.w d0,02.000004f0
- ; 283:
- ; 284: /* Shell */
- ; 285: Ktable[XA_SHELL_WRITE]=&XA_shell_write;
- | 0534 41fa 0000-XX.1 lea _XA_shell_write(pc),a0
- | 0538 23c8 0000 01e4-02 move.l a0,02.000001e4
- ; 286: Ktable[XA_SHELL_READ]=&XA_shell_read;
- | 053e 41fa 0000-XX.1 lea _XA_shell_read(pc),a0
- | 0542 23c8 0000 01e0-02 move.l a0,02.000001e0
- ; 287: Ktable[XA_SHELL_FIND]=&XA_shell_find;
- | 0548 41fa 0000-XX.1 lea _XA_shell_find(pc),a0
- | 054c 23c8 0000 01f0-02 move.l a0,02.000001f0
- ; 288: Ktable[XA_SHELL_ENVRN]=&XA_shell_envrn;
- | 0552 41fa 0000-XX.1 lea _XA_shell_envrn(pc),a0
- | 0556 23c8 0000 01f4-02 move.l a0,02.000001f4
- ; 289:
- ; 290: /* Scrap / Clipboard */
- ; 291: Ktable[XA_SCRAP_READ]=&XA_scrap_read;
- | 055c 41fa 0000-XX.1 lea _XA_scrap_read(pc),a0
- | 0560 23c8 0000 0140-02 move.l a0,02.00000140
- ; 292: Ktable[XA_SCRAP_WRITE]=&XA_scrap_write;
- | 0566 41fa 0000-XX.1 lea _XA_scrap_write(pc),a0
- | 056a 23c8 0000 0144-02 move.l a0,02.00000144
- ; 293:
- ; 294: /* XaAES specific AES calls */
- ; 295: Ktable[XA_APPL_PIPE]=&XA_appl_pipe;
- | 0570 41fa 0000-XX.1 lea _XA_appl_pipe(pc),a0
- | 0574 23c8 0000 0410-02 move.l a0,02.00000410
- ; 296:
- ; 297: /*
- ; 298: XaAES kernal internal messages - applications should NEVER send these to the kernal,
- ; 299: they are used internally to pass crucial info from the client pid trap handler to
- ; 300: the kernal.
- ; 301: */
- ; 302: Ktable[XA_NEW_CLIENT]=&XA_new_client;
- | 057a 41fa 0000-XX.1 lea _XA_new_client(pc),a0
- | 057e 23c8 0000 03ec-02 move.l a0,02.000003ec
- ; 303: Ktable[XA_CLIENT_EXIT]=&XA_client_exit;
- | 0584 41fa 0000-XX.1 lea _XA_client_exit(pc),a0
- | 0588 23c8 0000 03f0-02 move.l a0,02.000003f0
- ; 304: }
- | 058e 2e1f move.l (a7)+,d7
- | 0590 4e75 rts
-
- SECTION 01 "__MERGED" 0000003c BYTES
- OFFSETS 0000 THROUGH 0013 CONTAIN ZERO
- 0014 00000000-01 01.00000000
- 0018 00000002-01 01.00000002
- 001c 00000004-01 01.00000004
- 0020 00000006-01 01.00000006
- 0024 00000008-01 01.00000008
- 0028 0000000a-01 01.0000000a
- 002c 0000000c-01 01.0000000c
- 0030 0000000e-01 01.0000000e
- 0034 00000010-01 01.00000010
- 0038 00000012-01 01.00000012
-
- SECTION 02 "" 0001e878 BYTES
-